#ifndef RENDERER_H_
#define RENDERER_H_

#include "TextureManager.h"
#include "InputManager.h"
#include "Video.h"
#include "Color.h"
#include "Cursor.h"
#include "FontManager.h"
#include "Timer.h"

namespace Lame3d
{
	class Renderer
	{
		public:
			Renderer(TextureManager &tm, 
				const InputManager &iM, 
				const DisplayManager &dM,
				const Cursor &c,
				FontManager &fM);
			~Renderer();
			
			Color& ClearColor();
			
			void Render();
		
		protected:
			TextureManager &textureManager;
			const InputManager &inputManager;
			const DisplayManager &displayManager;
			const Cursor &cursor;
			FontManager &fontManager;
			
			Color clearColor;
			Color fpsColor;
			
			Timer fpsTimer;
			
			void enter2dMode();
			void leave2dMode();
			void drawMouse();
			void drawFPS();
	};
}

#endif /*RENDERER_H_*/
